home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / mui / bcc_src.lha / Parser / ParseBC.h < prev    next >
C/C++ Source or Header  |  1998-03-06  |  1KB  |  67 lines

  1. #ifndef PARSEBC_H
  2. #define PARSEBC_H
  3.  
  4. #include "ParseFile.h"
  5. #include "ClassDef.h"
  6. #include "Replace.h"
  7. #include "VarDef.h"
  8.  
  9. #define SW_NODATA    1
  10. #define SW_CUSTOM 2
  11. #define SW_PRESUPER 4
  12. #define SW_POSTSUPER 8
  13. #define SW_NOSUPER 16
  14. #define SW_SUPERCHECK 32
  15. #define SW_CLEARDATA 64
  16. #define SW_SUPER 128
  17. #define SW_NOEARLYDATA 256
  18.  
  19. #define MAXBCCBLOCKS    8
  20.  
  21.  
  22. class ParseBC: public ParseFile {
  23.  
  24.     short DoMA( short attr = 0 );
  25.     void CreateDisp( FILE *fh );
  26.     void InsertIAttrPre( FILE *fh, unsigned short test = SW_INIT );
  27.     void InsertIAttr( FILE *fh, unsigned short test = SW_INIT );
  28.  
  29.     short IsReferenced( char *s, Replace *rep = 0, short endmode = 0 );
  30.     
  31.     unsigned short switches;
  32.     short cont;
  33.  
  34.     Replace reppar, clref;
  35.  
  36.     ClassDef *cd;
  37.  
  38.     char *FindRef( void );
  39.     short RefCheck( Replace *r );
  40.     short NewDelCheck( void );
  41.     
  42.     short FullCheck( void );
  43.  
  44.     short Params( void );
  45.     short EarlyCode( void );
  46.     
  47.     inline void pDataDefAssign( void ) {
  48.         if( !(switches & SW_NODATA ) ) fprintf( ofh, " %sData *data = INST_DATA( cl, obj );\n", cd->Name );
  49.     }
  50.     inline void pDataDef( void ) {
  51.         if( !(switches & SW_NODATA ) ) fprintf( ofh, " %sData *data;\n", cd->Name );
  52.     }
  53.  
  54.     struct { Replace *rep; short brc; } BCC_block[MAXBCCBLOCKS];
  55.     short BCC_block_cnt;
  56.  
  57.     void InitData( void );
  58.     
  59. public:
  60.  
  61.     short Start( void );
  62.  
  63. };
  64.  
  65.  
  66. #endif
  67.